package com.tedu.api.thread;

/**
 * 创建线程---第三种方案：匿名内部类【推荐：创建1次】
 * Lambda表达式---JDK1.8推出新版本：简化匿名内部类写法
 * Lambda表达式也叫函数式表遍历！功能：简化匿名内部类
 *                               简化集合遍历功能
 *                               简化功能方法
 *                               简化IO流功能
 *Lambda表达式语法：（）->{},属于功能性接口
 * （）代表
 * -> 代表
 * {} 代表
 * 需求：创建接口  Insert 插排   提供：电
 *      子实现类  Computer  电脑
 *      子实现类接口--完成对象创建【创建一次】
 *      匿名内部类方式完成对象创建
 *      Lambda表达式结构完成对象创建
 */
public class LambdaAPI {
    public static void main(String[] args) {
        //创建插排接口--必须使用子实现类
        //Insert cp=new Computer(); //多态：造型
        //cp.Dian();
        //子实现类---创建一次对象---匿名内部类：支持接口以及抽象类创建
    /*  Insert cp=new Insert(){
            public String Dian(long money,char ch) {
            return"电脑通电了";
            }
       };
       cp.Dian(100,'2');*/
        //使用Lambda表达式
       /* Insert cp=(money,ch)->{return"电脑通电了";};
         cp.Dian(100,'2');*/
        /**Lambda表达式
         *（）代表  方法中参数，情况①：无参数，不可以删除
         *                   情况②：有参数，有一个参数,括号删除
         *                      ③：有参数，有两个参数以上，不可以删除
         *->代表 new对象的过程
         * {} 代表 方法中内容，情况
         *                 ①：看方法返回值 void  空  传入输出语句，删除花括号
         *                 ②：看方法返回值Java数据类型
         *                     【两种：八大基本数据类型 | 引用类型】
         *                     返回值  存在 return 不可以删除花括号【推荐】
         *                     2.1返回值  不存在 return 可以删除花括号【不推荐】
         *                 ③：看方法返回值  返回值集合  不可以删除花括号
         */
    }
    }

//创建插排--接口
interface Insert{
    public void Dian(long money,char ch);
}


//创建插排实现类--电脑类
//class Computer implements Insert{
//    public void Dian() {
//        System.out.println("电脑通电开机了~");
//    }
//
//
//    public void Dian(long money) {
//
//    }
//}